import java.util.Vector;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;


public class SeccionCompuesta extends Seccion{
	
	private Vector<Seccion> subSecciones;
	
	public SeccionCompuesta(){
		subSecciones = new Vector<Seccion>();
	}
	
	
	public void addSeccion(Seccion s){
		subSecciones.add(s);
	}
	
	public void removeSeccion(Seccion s){
		subSecciones.remove(s);
	}

	@Override
	protected String getPaginaInicial() {
		Seccion s = (Seccion)subSecciones.get(0);
		if(s.isSeccionSimple()){
			return s.getPaginaInicial();
		}
		return s.getPaginaInicial();
	}

	@Override
	protected void setPaginaInicial(String paginaInicial) {
		// TODO Auto-generated method stub
	}

	@Override
	protected String getPaginaFinal() {
		Seccion s = (Seccion)subSecciones.get(0);
		if(s.isSeccionSimple()){
			return s.getPaginaFinal();
		}
		return s.getPaginaFinal();
	}

	@Override
	protected void setPaginaFinal(String paginaFinal) {
		// TODO Auto-generated method stub
	}

	@Override
	protected boolean isSeccionSimple() {
		return false;
	}


	@Override
	protected Seccion parse(PDOutlineItem item, PDDocument doc, PDOutlineItem tope) {
		if(item != null){
			Seccion s = null;
			if(item.getFirstChild() != null){
				s = new SeccionCompuesta();
				subSecciones.add(s.parse(item.getFirstChild(),doc, item.getNextSibling()));
			}else{
				s = new Item();
				subSecciones.add(s.parse(item, doc, item.getNextSibling()));
			}			
			parse(item.getNextSibling(),doc, tope);			
		}
		return this;
	}


	@Override
	protected String read() {
		String text = "";
		for (Seccion subsSeccion : subSecciones) {
			text = text + '\n' + subsSeccion.read();			
		}
		return text;
	}

}
